#pragma once
#include <iostream>
using namespace std;

namespace my_log
{
    class LogLevel
    {
    public:
    
        enum class level
        {
            UNKNOWN = 0,
            DEBUG,
            INFO,
            WARN,
            ERROR,
            FATAL,
            OFF
        };
    
        static const char *ToString(my_log::LogLevel::level ll)
        {
            switch(ll)
            {
                case my_log::LogLevel::level::DEBUG:   return "DEBUG";
                case my_log::LogLevel::level::INFO:   return "INFO";
                case my_log::LogLevel::level::WARN:   return "WARN";
                case my_log::LogLevel::level::ERROR:   return "ERROR";
                case my_log::LogLevel::level::FATAL:   return "FATAL";
                case my_log::LogLevel::level::OFF:   return "OFF";
            }
    
            return "UNKNOWN";
        }

        public:

    
        static void TestLevel()
        {
            std::cout << my_log::LogLevel::ToString(my_log::LogLevel::level::DEBUG) << endl;
        }
    };
}

